穷举概述
穷举的概念
穷举法又称列举法、枚举法,是蛮力策略的具体体现,是一种简单而直接地解决问题的方法。其基本思想是逐一列举问题所涉及的所有情形,并根据问题提出的条件检验哪些是问题的解,哪些应予排除。
通常程序设计入门都是从穷举设计开始的。今天,计算机的运算速度非常快,应用穷举设计程序可快捷地解决一般数量的许多实际应用问题。
穷举法的特点是算法设计比较简单,解的可能为有限种,一一列举问题所涉及的所有情形。
穷举法常用于解决“是否存在”或“有多少种可能”等问题。其中许多实际应用问题靠人工推算求解是不可想象的,而应用计算机来求解,充分发挥计算机运算速度快、擅长重复操作的特点,穷举判断,快速简便。
应用穷举时应注意对问题所涉及的有限种情形须一一列举,既不能重复,又不能遗漏。重复列举直接引发增解,影响解的准确性;而列举的遗漏可能导致问题解的遗漏。穷举的框架描述
穷举通常应用循环结构来实现。在循环体中,根据所求解的具体条件,应用选择结构实施判断筛选,求得所要求的解。
穷举法的框架描述:
n=0;
for(k=<区间下限>;k<=<区间上限>;k++) // 根据指定范围实施穷举
if(<约束条件>) // 根据约束条件实施筛选
{ printf(<满足要求的解>); // 输出满足要求的解
n++; // 统计解的个数
}
有些问题没有明确的区间限制,可根据问题的具体实际试探性的从某个数开始,增值穷举,